package com.demo.system.init.sentinel.rule.active;//package com.demo.system.init.sentinel.activerule;
//
//import org.apache.curator.framework.CuratorFramework;
//import org.apache.curator.framework.CuratorFrameworkFactory;
//import org.apache.curator.retry.ExponentialBackoffRetry;
//import org.apache.zookeeper.CreateMode;
//import org.apache.zookeeper.data.Stat;
//
///**
// * @author ：qilong sun
// * @date ：Created in 2020/7/20 13:48
// * @description：zookeeper 规则推送；运行main方法，规则推送到zookeeper
// * @modified By：
// * @version: V1.0$
// */
//public class ZookeeperConfigSender {
//
//    private static final int RETRY_TIMES = 3;
//    private static final int SLEEP_TIME = 1000;
//
//    public static void main(String[] args) throws Exception {
//        final String remoteAddress = "localhost:2181";
//        // zookeeper / 目录下文件夹的名称
//        final String groupId = "Sentinel-Demo";
//        // 文件名字
//        final String dataId = "sentinel-dubbo-user-provider";
//        final String rule = "[\n"
//                + "  {\n"
//                + "    \"resource\": \"getUser\",\n"
//                + "    \"controlBehavior\": 0,\n"
//                + "    \"count\": 5.0,\n"
//                + "    \"grade\": 1,\n"
//                + "    \"limitApp\": \"default\",\n"
//                + "    \"strategy\": 0\n"
//                + "  }\n"
//                + "]";
//
//        CuratorFramework zkClient = CuratorFrameworkFactory.newClient(remoteAddress, new ExponentialBackoffRetry(SLEEP_TIME, RETRY_TIMES));
//        zkClient.start();
//        String path = getPath(groupId, dataId);
//        Stat stat = zkClient.checkExists().forPath(path);
//        if (stat == null) {
//            zkClient.create().creatingParentContainersIfNeeded().withMode(CreateMode.PERSISTENT).forPath(path, null);
//        }
//        zkClient.setData().forPath(path, rule.getBytes());
//
//        try {
//            Thread.sleep(3000);
//        } catch (InterruptedException e) {
//            e.printStackTrace();
//        }
//
//        zkClient.close();
//    }
//
//    private static String getPath(String groupId, String dataId) {
//        String path = "";
//        if (groupId.startsWith("/")) {
//            path += groupId;
//        } else {
//            path += "/" + groupId;
//        }
//        if (dataId.startsWith("/")) {
//            path += dataId;
//        } else {
//            path += "/" + dataId;
//        }
//        return path;
//    }
//}
